package com.jyw.business.obstacles.domain.vo.web;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jyw.common.constant.SysDictTypeConstant;
import com.jyw.common.annotation.Conversion;
import com.jyw.common.enums.ConversionType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.FieldNameConstants;

import java.util.Date;

/**
 * @author 沈峻
 * @ClassName ServerPageVO
 * @Description 服务台分页查询
 * @Date 2023/8/16 10:25
 **/
@ApiModel("服务台分页查询")
@Data
@FieldNameConstants
public class ServerPageVO {

    @ApiModelProperty("工单id")
    private Long id;

    @ApiModelProperty("故障描述")
    private String faultRemark;

    @ApiModelProperty("工单号")
    private String orderNum;

    @ApiModelProperty("主工单")
    private String parentOrderNum;

    @ApiModelProperty("工单状态")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_STATE)
    private String currState;

    @ApiModelProperty("工单状态标签")
    private String currStateToName;

    @ApiModelProperty("紧急程度")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_DEGREE)
    private Integer degree;

    @ApiModelProperty("紧急程度标签")
    private String degreeToName;

    @ApiModelProperty("影响范围")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_RANGE)
    private Integer rangeType;

    @ApiModelProperty("影响范围标签")
    private String rangeTypeToName;

    @ApiModelProperty("报修时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    @ApiModelProperty("报修院区/科室")
    @Conversion(value = ConversionType.DEPT,name = Fields.deptName)
    private Integer deptId;

    @ApiModelProperty("报修科室")
    private String deptName;

    @ApiModelProperty("报修电话")
    private String phone;

    @ApiModelProperty("报障来源")
    @Conversion(value = ConversionType.DICT,dictType = SysDictTypeConstant.OBS_FAULT_SOURCE)
    private Integer source;

    @ApiModelProperty("报障来源标签")
    private String sourceToName;

    @ApiModelProperty("坐席人")
    @Conversion(value = ConversionType.USER,name = Fields.receptionName)
    private Long reception;

    @ApiModelProperty("坐席人名称")
    private String receptionName;

    @ApiModelProperty("建单人")
    @Conversion(value = ConversionType.USER,name = Fields.createUserName)
    private Long createUser;

    @ApiModelProperty("建单人名称")
    private String createUserName;

    @ApiModelProperty("处理人")
    @Conversion(value = ConversionType.USER,name = Fields.makeUserName)
    private Long makeUser;

    @ApiModelProperty("处理人名称")
    private String makeUserName;
}
